package com.plian.system.entity.pf;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.HashMap;
import java.util.List;

/**
 * @description:经营业绩考核指标主表
 * @author: gangan
 * @create: 2020-05-29 18:11
 */
@Data
@TableName("pf_base_business_indicators")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "BaseBusinessIndicators对象", description = "经营业绩考核指标主表")
public class BaseBusinessIndicatorsNew extends BaseIndicators {

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-基本指标")
    private List<BusinessIndicators> baseIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-分类指标")
    private List<BusinessIndicators> categoryIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-行业指标")
    private List<BusinessIndicators> industryIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-其他")
    private List<BusinessIndicators> otherIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-财务绩效（为了不影响其他逻辑，保留）")
    private List<BusinessIndicators> businessIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-重大工程考核")
    private List<MajorProject> majorProjects;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-主责主业")
    private List<MainBusiness> mainBusinesses;

    @ApiModelProperty(value = "上个版本id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long lastVersionId;

    @ApiModelProperty(value = "初始版本id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long initialId;

    @ApiModelProperty(value = "版本号")
    private Integer version;

    @ApiModelProperty(value = "指标状态  1可引用状态  2变更审批中 ")
    private Integer indicatorStatus;

    @ApiModelProperty(value = "是否最新 1否2是")
    private Integer isLatest;

    @ApiModelProperty(value = "数据来源 null为系统填报 对应用户id")
    private String dataSource;

    @ApiModelProperty(value = "数据来源id", required = true)
    private String dataSourceId;

    @ApiModelProperty(value = "初始版本id")
    @TableField(exist = false)
    private String dataInitialId;
    @ApiModelProperty(value = "模块儿类型 0：年度经营绩效 ，1：任期经营绩效，2：经理层年度经营绩效，3：经理层任期经营绩效")
    private Integer moduleType;
    @ApiModelProperty(value = "经理人id")
    private String staffId;
    @ApiModelProperty(value = "经理人姓名")
    private String staffName;

    @ApiModelProperty(value = "附件")
    @TableField(exist = false)
    private List<HashMap> docList;
}
